(import modelo.*)
(deftemplate Movil (declare (from-class Movil)))


(defrule segmentoNoCamara
    "Modifica el campo segmentoCamara"
    ?p <- (Movil {camara == 0})
    =>
    (modify ?p(segmentoCamara no)))

(defrule segmentoBajoCamara
    "Modifica el campo segmentoCamara"
    ?p <- (Movil {camara < 0.4})
    =>
    (modify ?p(segmentoCamara bajo)))

(defrule segmentoMedioCamara
    "Modifica el campo segmentoCamara"
    ?p <- (Movil {camara >= 0.4 && camara <= 2})
    =>
    (modify ?p(segmentoCamara medio)))

(defrule segmentoAltoCamara
    "Modifica el campo segmentoCamara"
    ?p <- (Movil {camara > 2})
    =>
    (modify ?p(segmentoCamara alto)))

(defrule segmentoMuyBajoDesign
    "Modifica el campo segmentoDesign"
    ?p <- (Movil {design < 2.5})
    =>
    (modify ?p(segmentoDesign muybajo)))

(defrule segmentoBajoDesign
    "Modifica el campo segmentoDesign"
    ?p <- (Movil {design >= 2.5 && design < 5})
    =>
    (modify ?p(segmentoDesign bajo)))

(defrule segmentoMedioDesign
    "Modifica el campo segmentoDesign"
    ?p <- (Movil {design >= 5 && design < 7})
    =>
    (modify ?p(segmentoDesign medio)))

(defrule segmentoAltoDesign
    "Modifica el campo segmentoDesign"
    ?p <- (Movil {design >= 7 && design < 8.5})
    =>
    (modify ?p(segmentoDesign alto)))

(defrule segmentoMuyAltoDesign
    "Modifica el campo segmentoDesign"
    ?p <- (Movil {design >= 8.5})
    =>
    (modify ?p(segmentoDesign muyalto)))

(defrule segmentoBajoPeso
    "Modifica el campo segmentoPeso"
    ?p <- (Movil {peso < 65})
    =>
    (modify ?p(segmentoPeso bajo)))

(defrule segmentoMedioPeso
    "Modifica el campo segmentoPeso"
    ?p <- (Movil {peso >= 65 && peso < 85})
    =>
    (modify ?p(segmentoPeso medio)))

(defrule segmentoAltoPeso
    "Modifica el campo segmentoPeso"
    ?p <- (Movil {peso >= 85 && peso < 100})
    =>
    (modify ?p(segmentoPeso alto)))

(defrule segmentoMuyAltoPeso
    "Modifica el campo segmentoPeso"
    ?p <- (Movil {peso >= 100})
    =>
    (modify ?p(segmentoPeso muyalto)))

(defrule segmentoMuyBajoPrecio
    "Modifica el campo segmentoPrecio"
    ?p <- (Movil {precio < 1})
    =>
    (modify ?p(segmentoPrecio muybajo)))

(defrule segmentoBajoPrecio
    "Modifica el campo segmentoPrecio"
    ?p <- (Movil {precio >= 1 && precio < 60})
    =>
    (modify ?p(segmentoPrecio bajo)))

(defrule segmentoMedioPrecio
    "Modifica el campo segmentoPrecio"
    ?p <- (Movil {precio >= 60 && precio < 100})
    =>
    (modify ?p(segmentoPrecio medio)))

(defrule segmentoAltoPrecio
    "Modifica el campo segmentoPrecio"
    ?p <- (Movil {precio >= 100 && precio < 200})
    =>
    (modify ?p(segmentoPrecio alto)))

(defrule segmentoMuyAltoPrecio
    "Modifica el campo segmentoPrecio"
    ?p <- (Movil {precio >= 200})
    =>
    (modify ?p(segmentoPrecio muyalto)))

(defrule segmentoMuyBajoRend
    "Modifica el campo segmentoRend"
    ?p <- (Movil {rend < 2.5})
    =>
    (modify ?p(segmentoRend muybajo)))

(defrule segmentoBajoRend
    "Modifica el campo segmentoRend"
    ?p <- (Movil {rend >= 2.5 && rend < 5})
    =>
    (modify ?p(segmentoRend bajo)))

(defrule segmentoMedioRend
    "Modifica el campo segmentoRend"
    ?p <- (Movil {rend >= 5 && rend < 7})
    =>
    (modify ?p(segmentoRend medio)))

(defrule segmentoAltoRend
    "Modifica el campo segmentoRend"
    ?p <- (Movil {rend >= 7 && rend < 8.5})
    =>
    (modify ?p(segmentoRend alto)))

(defrule segmentoMuyAltoRend
    "Modifica el campo segmentoRend"
    ?p <- (Movil {rend >= 8.5})
    =>
    (modify ?p(segmentoRend muyalto)))

(defrule segmentoBajoVolumen
    "Modifica el campo segmentoVolumen"
    ?p <- (Movil {volumen < 60})
    =>
    (modify ?p(segmentoVolumen bajo)))

(defrule segmentoMedioVolumen
    "Modifica el campo segmentoVolumen"
    ?p <- (Movil {volumen >= 60 && volumen < 80})
    =>
    (modify ?p(segmentoVolumen medio)))

(defrule segmentoAltoVolumen
    "Modifica el campo segmentoVolumen"
    ?p <- (Movil {volumen >= 80})
    =>
    (modify ?p(segmentoVolumen alto)))
